import Vue from 'vue';
import Router from 'vue-router';

Vue.use(Router);

/* Layout */
import Layout from '@/layout';


// 静态路由
export const constantRoutes = [
  {
    path: '/login',
    component: () => import('@/views/login/index'),
    hidden: true
  },

  {
    path: '/404',
    component: () => import('@/views/404'),
    hidden: true
  },

  {
    path: '/',
    component: Layout,
    redirect: '/dashboard',
    children: [{
      path: 'dashboard',
      name: 'Dashboard',
      component: () => import('@/views/dashboard/index'),
      meta: { title: '首页', icon: 'dashboard' }
    }]
  },


  // 权限管理
  /* {
    path: "/acl",
    name: "Acl",
    component: Layout, // 一级路由组件(整体布局)
    redirect: '/acl/user/list', // 自动重定向到默认子路由
    meta: { title: '权限管理', icon: 'el-icon-setting' }, // 左侧导航菜单标题和图标
    children: [
      {
        path: 'user/list',
        name: "User",
        component: () => import("@/views/acl/user"),
        meta: { title: "用户管理" }
      },
      {
        path: 'role/list',
        name: "Role",
        component: () => import("@/views/acl/role"),
        meta: { title: "角色管理" },

      },
      {
        path: 'role/auth',
        name: "Auth",
        hidden: true,
        component: () => import("@/views/acl/role/components/Auth.vue"),
        meta: { title: "角色管理", matchMedia: "role/list" }
      },

      {
        path: 'permission/list',
        name: "Permission",
        component: () => import("@/views/acl/permission"),
        meta: { title: "菜单管理" }
      }
    ]
  },

  // 商品管理
  {
    path: "/product",
    name: "Product",
    component: Layout, // 一级路由组件(整体布局)
    redirect: '/product/category/list', // 自动重定向到默认子路由
    meta: { title: '商品管理', icon: 'el-icon-s-shop' }, // 左侧导航菜单标题和图标
    children: [// 子路由(功能菜单路由)
      {
        name: 'Category', // 标识名称
        path: 'category/list', // 路由路径
        component: () => import('@/views/product/category'), // 组件
        meta: {
          title: '分类管理', // 菜单标题
        },
      },
      {
        name: 'Trademark',
        path: 'trademark/list',
        component: () => import('@/views/product/trademark'),
        meta: {
          title: '品牌管理',
        },
      },
      // 第二部分: 品牌管理
      {
        name: 'Attr',
        path: 'attr/list',
        component: () => import('@/views/product/attr'),
        meta: {
          title: '平台属性管理',
        },
      },
      {
        name: 'Spu',
        path: 'spu/list',
        component: () => import('@/views/product/spu'),
        meta: {
          title: 'SPU管理',
        },
      },
      {
        name: 'Sku',
        path: 'sku/list',
        component: () => import('@/views/product/sku'),
        meta: {
          title: 'SKU管理',
        },
      }
    ]


  },
 */



  // 404 page must be placed at the end !!!

  // { path: '*', redirect: '/404', hidden: true }
];


// 动态路由
export const DynamicRouter = [

  // 权限管理
  {
    path: "/acl",
    name: "Acl",
    component: Layout, // 一级路由组件(整体布局)
    redirect: '/acl/user/list', // 自动重定向到默认子路由
    meta: { title: '权限管理', icon: 'el-icon-setting' }, // 左侧导航菜单标题和图标
    children: [
      {
        path: 'user/list',
        name: "User",
        component: () => import("@/views/acl/user"),
        meta: { title: "用户管理" }
      },
      {
        path: '/role/list',
        name: "Role",
        component: () => import("@/views/acl/role"),
        meta: { title: "角色管理" },
      },
      {
        path: '/role/auth',
        name: "RoleAuth",
        component: () => import("@/views/acl/role/components/Auth.vue"),
        hidden: true,
        meta: {
          title: "角色管理", activeMenu: "/role/list"
        }
      },

      {
        path: 'permission/list',
        name: "Permission",
        component: () => import("@/views/acl/permission"),
        meta: { title: "菜单管理" }
      }
    ]
  },

  // 商品管理
  {
    path: "/product",
    name: "Product",
    component: Layout, // 一级路由组件(整体布局)
    redirect: '/product/category/list', // 自动重定向到默认子路由
    meta: { title: '商品管理', icon: 'el-icon-s-shop' }, // 左侧导航菜单标题和图标
    children: [// 子路由(功能菜单路由)
      {
        name: 'Category', // 标识名称
        path: 'category/list', // 路由路径
        component: () => import('@/views/product/category'), // 组件
        meta: {
          title: '分类管理', // 菜单标题
        },
      },
      {
        name: 'Trademark',
        path: 'trademark/list',
        component: () => import('@/views/product/trademark'),
        meta: {
          title: '品牌管理',
        },
      },
      // 第二部分: 品牌管理
      {
        name: 'Attr',
        path: 'attr/list',
        component: () => import('@/views/product/attr'),
        meta: {
          title: '平台属性管理',
        },
      },
      {
        name: 'Spu',
        path: 'spu/list',
        component: () => import('@/views/product/spu'),
        meta: {
          title: 'SPU管理',
        },
      },
      {
        name: 'Sku',
        path: 'sku/list',
        component: () => import('@/views/product/sku'),
        meta: {
          title: 'SKU管理',
        },
      }
    ]


  },

];

// 匹配路由
export const AsyncRoute = { path: '*', redirect: '/404', hidden: true };
export const createRouter = () => new Router({

  scrollBehavior: () => ({ y: 0 }),
  routes: constantRoutes
});

const router = createRouter(constantRoutes);



export function resetRouter() {
  const newRouter = createRouter();
  router.matcher = newRouter.matcher; // reset router
}

// router.beforeEach((to, from, next) => {
//   next();
// });
export default router;
